home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / ODFDev / ODF / OS / FWOSMisc / Sources / SLFileOp.cpp < prev   
Encoding:
Text File  |  1996-04-25  |  18.5 KB  |  596 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                SLFileOp.cpp
  4. //    Release Version:    $ ODF 1 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #include "FWOS.hpp"
  11.  
  12. #ifndef SLFILEOP_H
  13. #include "SLFileOp.h"
  14. #endif
  15.  
  16. // ----- Foundation Includes -----
  17.  
  18. #ifndef FWSOMENV_H
  19. #include "FWSOMEnv.h"
  20. #endif
  21.  
  22. #ifndef FWBNDSTR_H
  23. #include <FWBndStr.h>
  24. #endif
  25.  
  26. #ifndef FWMEMMGR_H
  27. #include <FWMemMgr.h>
  28. #endif
  29.  
  30. //----- Windows includes -----
  31.  
  32. #if defined(FW_BUILD_WIN) && !defined(__STDLIB_H)
  33. #include <stdlib.h>
  34. #endif
  35.  
  36. #if defined(FW_BUILD_WIN) && !defined(__WINDOWS_H)
  37. #include <windows.h>
  38. #endif
  39.  
  40. #if defined(FW_BUILD_WIN) && !defined(__COMMDLG_H)
  41. #include <commdlg.h>
  42. #endif
  43.  
  44. #if defined(FW_BUILD_WIN) && !defined(IO_H)
  45. #include "io.h"
  46. #endif
  47.  
  48. //----- Macintosh includes -----
  49.  
  50. // for DisposeRoutineDescriptor
  51. #if defined(FW_BUILD_MAC) && !defined(__MIXEDMODE__)
  52. #include <MixedMode.h>
  53. #endif
  54.  
  55. #if defined(__MWERKS__) && GENERATING68K
  56. // A hack to work around a bug
  57. #pragma import list somNewObjectInstance
  58. #endif
  59.  
  60.  
  61. //========================================================================================
  62. //    Runtime Informations
  63. //========================================================================================
  64.  
  65. #ifdef FW_BUILD_MAC    
  66. #pragma segment fwosmisc
  67. #endif
  68.  
  69. //----------------------------------------------------------------------------------------
  70. // FW_ChooseFileToOpen
  71. //----------------------------------------------------------------------------------------
  72.  
  73. FW_OFileSpecification* SL_API FW_ChooseFileToOpen(FW_HOpenFileParameters openFileParam)
  74. {
  75.     FW_OFileSpecification* fileSpec = NULL;
  76.  
  77.     FW_TRY
  78.     {
  79. #ifdef FW_BUILD_MAC
  80.         StandardFileReply reply;
  81.     // pascal void StandardGetFile(FileFilterUPP fileFilter, short numTypes, SFTypeList typeList, StandardFileReply *reply)
  82.         FileFilterUPP fileFilter = NewFileFilterProc(FW_OpenFileParameters_MacGetFilterProc(openFileParam));
  83.         ::StandardGetFile(fileFilter,
  84.                           FW_OpenFileParameters_MacCountTypes(openFileParam), 
  85.                           FW_OpenFileParameters_MacGetTypes(openFileParam), 
  86.                           &reply);
  87.         DisposeRoutineDescriptor((UniversalProcPtr)fileFilter);
  88.     
  89.         if (reply.sfGood)
  90.         {
  91.             FW_SOMEnvironment ev;
  92.     
  93.             fileSpec = new FW_OFileSpecification;
  94.             fileSpec->AssignFileSpec(ev, &reply.sfFile);
  95.         }
  96. #endif
  97.  
  98. #ifdef FW_BUILD_WIN
  99.         OPENFILENAME     ofn;
  100.         char            fullFileName[_MAX_PATH];
  101.             
  102.         ::memset(&ofn, 0, sizeof(OPENFILENAME));
  103.         
  104.         fullFileName[0] = 0;
  105.         
  106.         ofn.lStructSize        = sizeof(OPENFILENAME);
  107.         ofn.hwndOwner        = FW_OpenFileParameters_WinGetOwnerWindow(openFileParam);
  108.         ofn.lpstrFilter        = FW_OpenFileParameters_WinGetFilterString(openFileParam);
  109.         ofn.lpstrFile        = fullFileName;
  110.         ofn.nMaxFile        = _MAX_PATH;    // size of fullFileName buffer
  111.         ofn.Flags            = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
  112.         ofn.lpstrDefExt        = FW_OpenFileParameters_WinGetDefaultExt(openFileParam);
  113.         
  114.         if (::GetOpenFileName(&ofn))
  115.         {
  116.             FW_SOMEnvironment ev;
  117.             FW_CString255 name(fullFileName);
  118.     
  119.             fileSpec = new FW_OFileSpecification;
  120.             fileSpec->InitFromFileName(ev, name);
  121.         }
  122. #endif
  123.     } 
  124.     FW_CATCH_BEGIN 
  125.     FW_CATCH_EVERYTHING() 
  126.     { 
  127.         if (fileSpec != 0)
  128.         {
  129.             delete fileSpec; 
  130.             fileSpec = 0;
  131.         }
  132.     } 
  133.     FW_CATCH_END 
  134.  
  135.     return fileSpec;
  136. }
  137.  
  138. //----------------------------------------------------------------------------------------
  139. // FW_ChooseFileToSave
  140. //----------------------------------------------------------------------------------------
  141.  
  142. FW_OFileSpecification* SL_API FW_ChooseFileToSave(FW_HSaveFileParameters saveFileParam)
  143. {
  144.     FW_OFileSpecification* fileSpec = NULL;
  145.  
  146.     FW_TRY
  147.     {
  148. #ifdef FW_BUILD_MAC
  149.     // pascal void StandardPutFile(ConstStr255Param prompt, ConstStr255Param defaultName, StandardFileReply *reply)
  150.         FW_CString str;
  151.     
  152.         Str255 defaultName;
  153.         str = FW_SaveFileParameters_MacGetDefaultName(saveFileParam);
  154.         str.ExportPascal(defaultName);
  155.  
  156.         Str255 savePrompt;
  157.         str = FW_SaveFileParameters_MacGetSavePrompt(saveFileParam);
  158.         str.ExportPascal(savePrompt);
  159.  
  160.         StandardFileReply reply;
  161.         ::StandardPutFile(savePrompt, defaultName, &reply);
  162.         if (reply.sfGood)
  163.         {
  164.             FW_SOMEnvironment ev;
  165.     
  166.             fileSpec = new FW_OFileSpecification;
  167.             fileSpec->AssignFileSpec(ev, &reply.sfFile);
  168.         }
  169. #endif
  170.  
  171. #ifdef FW_BUILD_WIN
  172.         OPENFILENAME     ofn;        
  173.         ::memset(&ofn, 0, sizeof(OPENFILENAME));
  174.         
  175.         ofn.lStructSize        = sizeof(OPENFILENAME);
  176.         ofn.hwndOwner        = FW_SaveFileParameters_WinGetOwnerWindow(saveFileParam);
  177.         ofn.lpstrFilter        = FW_SaveFileParameters_WinGetFilterString(saveFileParam);
  178.         ofn.lpstrFile        = FW_SaveFileParameters_WinGetDefaultName(saveFileParam);
  179.         ofn.nMaxFile        = _MAX_PATH;
  180.         ofn.lpstrDefExt        = FW_SaveFileParameters_WinGetDefaultExt(saveFileParam);
  181.         ofn.Flags            = OFN_OVERWRITEPROMPT;
  182.         
  183.         if (::GetSaveFileName(&ofn))
  184.         {
  185.             FW_SOMEnvironment ev;
  186.             FW_CString255 fileName(FW_SaveFileParameters_WinGetDefaultName(saveFileParam));
  187.     
  188.             fileSpec = new FW_OFileSpecification;
  189.             fileSpec->InitFromFileName(ev, fileName);
  190.         }
  191. #endif
  192.     } 
  193.     FW_CATCH_BEGIN 
  194.     FW_CATCH_EVERYTHING() 
  195.     { 
  196.         if (fileSpec != 0)
  197.         {
  198.             delete fileSpec; 
  199.             fileSpec = 0;
  200.         }
  201.     } 
  202.     FW_CATCH_END 
  203.  
  204.     return fileSpec;
  205. }
  206.  
  207. //----------------------------------------------------------------------------------------
  208. //    FW_OpenFileParameters_Construct
  209. //----------------------------------------------------------------------------------------
  210.  
  211. FW_PlatformError SL_API FW_OpenFileParameters_Construct(FW_HOpenFileParameters parameters)
  212. {
  213. #ifdef FW_BUILD_MAC
  214.     parameters->fNumTypes = -1;
  215.     parameters->fFileFilterProc = NULL;
  216. #endif
  217. #ifdef FW_BUILD_WIN
  218.     parameters->fOwnerWindow = NULL;
  219.     parameters->fFilterString = NULL;
  220.     parameters->fDefaultExt[0] = 0;
  221. #endif
  222.     parameters->fReserved = NULL;
  223.  
  224.     return FW_xNoError;
  225. }
  226.  
  227. //----------------------------------------------------------------------------------------
  228. //    FW_OpenFileParameters_Destruct
  229. //----------------------------------------------------------------------------------------
  230.  
  231. FW_PlatformError SL_API FW_OpenFileParameters_Destruct(FW_HOpenFileParameters parameters)
  232. {
  233. FW_UNUSED(parameters);
  234. #ifdef FW_BUILD_WIN
  235.     if (parameters->fFilterString)
  236.         FW_CMemoryManager::FreeBlock(parameters->fFilterString);
  237. #endif
  238.     return FW_xNoError;
  239. }
  240.  
  241. #ifdef FW_BUILD_MAC
  242. //----------------------------------------------------------------------------------------
  243. //    FW_OpenFileParameters_MacSet
  244. //----------------------------------------------------------------------------------------
  245.  
  246. FW_PlatformError SL_API FW_OpenFileParameters_MacSet(FW_HOpenFileParameters parameters, 
  247.                                               short numTypes,
  248.                                               OSType* fileType, 
  249.                                               FileFilterProcPtr fileFilterProc)
  250. {
  251.     FW_ASSERT(numTypes >= -1);
  252.     
  253.     parameters->fNumTypes = numTypes;
  254.     for (short i = 0; i<numTypes; i++)
  255.         parameters->fTypes[i] = fileType[i];
  256.     
  257.     parameters->fFileFilterProc = fileFilterProc;
  258.         
  259.     return FW_xNoError;
  260. }
  261. #endif
  262.  
  263. #ifdef FW_BUILD_WIN
  264. //----------------------------------------------------------------------------------------
  265. //    FW_OpenFileParameters_WinInit
  266. //----------------------------------------------------------------------------------------
  267.  
  268. FW_PlatformError SL_API FW_OpenFileParameters_WinInit(FW_HOpenFileParameters parameters, 
  269.                                                FW_HString filterString,
  270.                                                FW_HString defaultExt,
  271.                                                HWND ownerWindow)
  272. {
  273.     if (ownerWindow == NULL)
  274.         parameters->fOwnerWindow = NULL;
  275.     else
  276.         parameters->fOwnerWindow = ownerWindow; // [KVV] Temporary code! ->GetXMPWindow()->GetPlatformWindow();
  277.  
  278.     return FW_OpenFileParameters_WinSet(parameters, filterString, defaultExt);
  279. }
  280. #endif
  281.  
  282. #ifdef FW_BUILD_WIN
  283. //----------------------------------------------------------------------------------------
  284. //    FW_OpenFileParameters_WinSet
  285. //----------------------------------------------------------------------------------------
  286.  
  287. FW_PlatformError SL_API FW_OpenFileParameters_WinSet(FW_HOpenFileParameters parameters,
  288.                                               FW_HString filterStringParam, 
  289.                                               FW_HString defaultExtParam)
  290. {
  291.     FW_TRY
  292.     {
  293.         FW_CString filterString(filterStringParam);
  294.         FW_CString defaultExt(defaultExtParam);
  295.     
  296.         if (defaultExt.GetByteLength() < 4)
  297.             defaultExt.ExportCString(parameters->fDefaultExt);
  298.         
  299.         long length = filterString.GetByteLength();
  300.         if (length == 0)
  301.             return FW_xUnknownError;
  302.     
  303.         // Allocate memory to hold the filter strings
  304.         parameters->fFilterString = (char*)FW_CMemoryManager::AllocateBlock(length+1);    // add room for 0-terminator
  305.         filterString.ExportCString(parameters->fFilterString);
  306.         
  307.         char chReplace = parameters->fFilterString[length-1];    // final char should be "|" or other separator
  308.         // replace separator characters with 0's, dividing filter into individual strings
  309.         for (short i = 0; parameters->fFilterString[i] != '\0'; i++)
  310.                 if (parameters->fFilterString[i] == chReplace)
  311.                     parameters->fFilterString[i] = '\0';        
  312.     }
  313.     FW_CATCH_BEGIN
  314.     FW_CATCH_REFERENCE(FW_XException, exception) 
  315.     { 
  316.         return exception.GetPlatformError(); 
  317.     } 
  318.     FW_CATCH_EVERYTHING() 
  319.     { 
  320.         return FW_xUnknownError; 
  321.     } 
  322.     FW_CATCH_END
  323.     return FW_xNoError;
  324. }
  325. #endif
  326.  
  327. //----------------------------------------------------------------------------------------
  328. //    FW_SaveFileParameters_Construct
  329. //----------------------------------------------------------------------------------------
  330.  
  331. FW_PlatformError SL_API FW_SaveFileParameters_Construct(FW_HSaveFileParameters parameters)
  332. {
  333. #ifdef FW_BUILD_MAC
  334.     FW_TRY
  335.     {
  336.         // The default name and save prompt are FW_HStrings.  This idiom, courtesy of
  337.         // Jim Lloyd, acquires the FW_HString for the duration of our struct.
  338.         // [ODF2] Strings in resource
  339.         FW_CString savePrompt("Save file as");
  340.         parameters->fSavePrompt = savePrompt;
  341.         FW_PrivString_Acquire(parameters->fSavePrompt);
  342.     
  343.         FW_CString defaultName("");
  344.         parameters->fDefaultName = defaultName;
  345.         FW_PrivString_Acquire(parameters->fDefaultName);
  346.     }
  347.     FW_CATCH_BEGIN
  348.     FW_CATCH_REFERENCE(FW_XException, exception) 
  349.     { 
  350.         return exception.GetPlatformError(); 
  351.     } 
  352.     FW_CATCH_EVERYTHING() 
  353.     { 
  354.         return FW_xUnknownError; 
  355.     } 
  356.     FW_CATCH_END
  357. #endif
  358. #ifdef FW_BUILD_WIN
  359.     parameters->fOwnerWindow = NULL;
  360.     parameters->fFilterString = NULL;
  361.     parameters->fDefaultExt[0] = 0;
  362.     parameters->fDefaultName = NULL;
  363. #endif
  364.     return FW_xNoError;
  365. }
  366.  
  367. //----------------------------------------------------------------------------------------
  368. //    FW_SaveFileParameters_Destruct
  369. //----------------------------------------------------------------------------------------
  370. FW_PlatformError SL_API FW_SaveFileParameters_Destruct(FW_HSaveFileParameters parameters)
  371. {
  372.     // No try block necessary - Do not throw
  373. #ifdef FW_BUILD_MAC
  374.     FW_PrivString_Release(parameters->fSavePrompt);
  375.     FW_PrivString_Release(parameters->fDefaultName);
  376. #endif
  377. #ifdef FW_BUILD_WIN
  378.     FW_CMemoryManager::FreeBlock(parameters->fFilterString);
  379.     FW_CMemoryManager::FreeBlock(parameters->fDefaultName);
  380. #endif
  381.     return FW_xNoError;
  382. }
  383.  
  384. #ifdef FW_BUILD_MAC
  385. //----------------------------------------------------------------------------------------
  386. //    FW_SaveFileParameters_MacInit
  387. //----------------------------------------------------------------------------------------
  388. FW_PlatformError SL_API FW_SaveFileParameters_MacInit(FW_HSaveFileParameters parameters,
  389.                                                FW_HString savePrompt,
  390.                                                FW_HString defaultName)
  391. {
  392.     // No try block necessary - Do not throw
  393.     FW_PrivString_Acquire(savePrompt);
  394.     FW_PrivString_Release(parameters->fSavePrompt);
  395.     parameters->fSavePrompt = savePrompt;
  396.  
  397.     FW_PrivString_Acquire(defaultName);
  398.     FW_PrivString_Release(parameters->fDefaultName);
  399.     parameters->fDefaultName = defaultName;
  400.     return FW_xNoError;
  401. }
  402. #endif
  403.  
  404. #ifdef FW_BUILD_WIN
  405. //----------------------------------------------------------------------------------------
  406. //    FW_SaveFileParameters_WinInit
  407. //----------------------------------------------------------------------------------------
  408. FW_PlatformError SL_API FW_SaveFileParameters_WinInit(FW_HSaveFileParameters parameters,
  409.                                                FW_HString filterString,
  410.                                                FW_HString defaultExt,
  411.                                                FW_HString defaultName,
  412.                                                HWND ownerWindow)
  413. {
  414.     if (ownerWindow == NULL)
  415.         parameters->fOwnerWindow = NULL;
  416.     else
  417.         parameters->fOwnerWindow = ownerWindow; // [KVV] Temporary code! ->GetXMPWindow()->GetPlatformWindow();
  418.  
  419.     return FW_SaveFileParameters_WinSet(parameters, filterString, defaultExt, defaultName);
  420. }
  421. #endif
  422.  
  423. #ifdef FW_BUILD_WIN
  424. //----------------------------------------------------------------------------------------
  425. //    FW_SaveFileParameters_WinSet
  426. //----------------------------------------------------------------------------------------
  427. FW_PlatformError SL_API FW_SaveFileParameters_WinSet(FW_HSaveFileParameters parameters,
  428.                                               FW_HString filterStringParam,
  429.                                               FW_HString defaultExtParam,
  430.                                               FW_HString defaultNameParam)
  431. {
  432.     FW_TRY
  433.     {
  434.         FW_CString filterString(filterStringParam);
  435.         FW_CString defaultExt(defaultExtParam);
  436.         FW_CString defaultName(defaultNameParam);
  437.  
  438.         if (defaultExt.GetByteLength() < 4)
  439.             defaultExt.ExportCString(parameters->fDefaultExt);
  440.     
  441.         // Allocate memory to hold the default name
  442.         long length = defaultName.GetByteLength();
  443.         parameters->fDefaultName = (char*)FW_CMemoryManager::AllocateBlock(length+1);    // add room for 0-terminator
  444.         defaultName.ExportCString(parameters->fDefaultName);
  445.     
  446.         // Allocate memory to hold the filter strings
  447.         length = filterString.GetByteLength();
  448.         parameters->fFilterString = (char*)FW_CMemoryManager::AllocateBlock(length+1);    // add room for 0-terminator
  449.         filterString.ExportCString(parameters->fFilterString);
  450.         
  451.         if (length != 0)
  452.         {
  453.             // Divide filter string into individual strings
  454.             char chReplace = parameters->fFilterString[length-1];            // final char should be "|" or other separator
  455.             for (short i = 0; parameters->fFilterString[i] != '\0'; i++)    // replace separator characters with 0's
  456.                     if (parameters->fFilterString[i] == chReplace)
  457.                         parameters->fFilterString[i] = '\0';
  458.         }        
  459.     }
  460.     FW_CATCH_BEGIN
  461.     FW_CATCH_REFERENCE(FW_XException, exception) 
  462.     { 
  463.         return exception.GetPlatformError(); 
  464.     } 
  465.     FW_CATCH_EVERYTHING() 
  466.     { 
  467.         return FW_xUnknownError; 
  468.     } 
  469.     FW_CATCH_END
  470.     return FW_xNoError;
  471. }
  472. #endif
  473.  
  474.  
  475. #ifdef FW_BUILD_MAC
  476. //----------------------------------------------------------------------------------------
  477. //    FW_OpenFileParameters_MacCountTypes
  478. //----------------------------------------------------------------------------------------
  479. short SL_API FW_OpenFileParameters_MacCountTypes(FW_HOpenFileParameters parameters)
  480. {
  481.     return parameters->fNumTypes;
  482. }
  483. #endif
  484.  
  485. #ifdef FW_BUILD_MAC
  486. //----------------------------------------------------------------------------------------
  487. //    FW_OpenFileParameters_MacGetFilterProc
  488. //----------------------------------------------------------------------------------------
  489. FileFilterProcPtr SL_API FW_OpenFileParameters_MacGetFilterProc(FW_HOpenFileParameters parameters)
  490. {
  491.     return parameters->fFileFilterProc;
  492. }
  493. #endif
  494.  
  495. #ifdef FW_BUILD_MAC
  496. //----------------------------------------------------------------------------------------
  497. //    FW_OpenFileParameters_MacGetTypes
  498. //----------------------------------------------------------------------------------------
  499. OSType* SL_API FW_OpenFileParameters_MacGetTypes(FW_HOpenFileParameters parameters)
  500. {
  501.     return parameters->fNumTypes == -1 ? NULL : parameters->fTypes;
  502. }
  503. #endif
  504.  
  505. #ifdef FW_BUILD_WIN
  506. //----------------------------------------------------------------------------------------
  507. //    FW_OpenFileParameters_WinGetFilterString
  508. //----------------------------------------------------------------------------------------
  509. char* SL_API FW_OpenFileParameters_WinGetFilterString(FW_HOpenFileParameters parameters)
  510. {
  511.     return parameters->fFilterString;
  512. }
  513. #endif
  514.  
  515. #ifdef FW_BUILD_WIN
  516. //----------------------------------------------------------------------------------------
  517. //    FW_OpenFileParameters_WinGetDefaultExt
  518. //----------------------------------------------------------------------------------------
  519. char* SL_API FW_OpenFileParameters_WinGetDefaultExt(FW_HOpenFileParameters parameters)
  520. {
  521.     return parameters->fDefaultExt;
  522. }
  523. #endif
  524.  
  525. #ifdef FW_BUILD_WIN
  526. //----------------------------------------------------------------------------------------
  527. //    FW_OpenFileParameters_WinGetOwnerWindow
  528. //----------------------------------------------------------------------------------------
  529. HWND SL_API FW_OpenFileParameters_WinGetOwnerWindow(FW_HOpenFileParameters parameters)
  530. {
  531.     return parameters->fOwnerWindow;
  532. }
  533. #endif
  534.  
  535. #ifdef FW_BUILD_MAC
  536. //----------------------------------------------------------------------------------------
  537. //    FW_SaveFileParameters_MacGetSavePrompt
  538. //----------------------------------------------------------------------------------------
  539. FW_HString SL_API FW_SaveFileParameters_MacGetSavePrompt(FW_HSaveFileParameters parameters)
  540. {
  541.     // No try block necessary - Do not throw
  542.     return parameters->fSavePrompt;
  543. }
  544. #endif
  545.  
  546. #ifdef FW_BUILD_MAC
  547. //----------------------------------------------------------------------------------------
  548. //    FW_SaveFileParameters_MacGetDefaultName
  549. //----------------------------------------------------------------------------------------
  550. FW_HString SL_API FW_SaveFileParameters_MacGetDefaultName(FW_HSaveFileParameters parameters)
  551. {
  552.     // No try block necessary - Do not throw
  553.     return parameters->fDefaultName;
  554. }
  555. #endif
  556.  
  557. #ifdef FW_BUILD_WIN
  558. //----------------------------------------------------------------------------------------
  559. //    FW_SaveFileParameters_WinGetFilterString
  560. //----------------------------------------------------------------------------------------
  561. char* SL_API FW_SaveFileParameters_WinGetFilterString(FW_HSaveFileParameters parameters)
  562. {
  563.     return parameters->fFilterString;
  564. }
  565. #endif
  566.  
  567. #ifdef FW_BUILD_WIN
  568. //----------------------------------------------------------------------------------------
  569. //    FW_SaveFileParameters_WinGetDefaultExt
  570. //----------------------------------------------------------------------------------------
  571. char* SL_API FW_SaveFileParameters_WinGetDefaultExt(FW_HSaveFileParameters parameters)
  572. {
  573.     return parameters->fDefaultExt;
  574. }
  575. #endif
  576.  
  577. #ifdef FW_BUILD_WIN
  578. //----------------------------------------------------------------------------------------
  579. //    FW_SaveFileParameters_WinGetDefaultName
  580. //----------------------------------------------------------------------------------------
  581. char* SL_API FW_SaveFileParameters_WinGetDefaultName(FW_HSaveFileParameters parameters)
  582. {
  583.     return parameters->fDefaultName;
  584. }
  585. #endif
  586.  
  587. #ifdef FW_BUILD_WIN
  588. //----------------------------------------------------------------------------------------
  589. //    FW_SaveFileParameters_WinGetOwnerWindow
  590. //----------------------------------------------------------------------------------------
  591. HWND SL_API FW_SaveFileParameters_WinGetOwnerWindow(FW_HSaveFileParameters parameters)
  592. {
  593.     return parameters->fOwnerWindow;
  594. }
  595. #endif
  596.